let express = require('express');

let mysql = require('mysql');

let app = express();

app.use(express.static('./'));

app.use('*', (req, res, next) => {
    res.header('Access-Control-Allow-Origin', '*');
    next();
});

let ct = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '123456',
    database: 'gz2110'
});

ct.connect();

// 登录接口
// 传过来的可能是一个 手机号 或者 邮箱，
app.get('/login', (req, res) => {

    // console.log(req.query)
    // console.log(tel)

    // 用户输入的是手机号时
    if (req.query.tel) {

        let {
            tel,
            password
        } = req.query;

        ct.query(`SELECT * FROM huaban WHERE tel='${tel}'`, (err, data) => {
            // console.log(err);
            // console.log(data);

            if (data[0]) {

                ct.query(`SELECT * FROM huaban WHERE tel='${tel}' AND password='${password}'`, (err1, data1) => {

                    if (data1[0]) {
                        res.send({
                            code: true,
                            msg: '登录成功'
                        })
                        return;
                    }
                    res.send({
                        code: false,
                        msg: '密码错误'
                    });
                });
                return;
            };

            res.send({
                code: false,
                msg: '用户名不存在'
            });
        });

        // 用户输入的是邮箱时
    } else {

        let {
            email,
            password
        } = req.query;

        ct.query(`SELECT * FROM huaban WHERE email='${email}'`, (err, data) => {
            // console.log(err);
            // console.log(data);

            if (data[0]) {

                ct.query(`SELECT * FROM huaban WHERE email='${email}' AND password='${password}'`, (err1, data1) => {

                    if (data1[0]) {

                        res.send({
                            code: true,
                            msg: '登录成功'
                        })
                        return;
                    }
                    res.send({
                        code: false,
                        msg: '密码错误'
                    });
                });
                return;
            };

            res.send({
                code: false,
                msg: '用户名不存在'
            });
        });
    };

});


// 检查是否可以注册的接口
// 用户传过来的只会是手机号
app.get('/whetherdialog', (req, res) => {

    // console.log(req.query);

    let {
        tel
    } = req.query;

    ct.query(`SELECT * FROM huaban WHERE tel='${tel}'`, (err, data) => {

        // console.log(err);
        // console.log(data);
        if (data.length != 0) {
            res.send({
                code: false,
                msg: '用户已存在，请前往登录页面登录'
            });
            return;
        };

        res.send({
            code: true,
            msg: '用户不存在，可以进行注册'
        });
    })
});


// 注册接口
// 当用户填写完信息，包括 注册手机号 邮箱 昵称 密码，将用户信息添加到数据库
// 跳转到huaban首页，并且 登录注册 按钮变成 头像+退出按钮
app.get('/dialog', (req, res) => {

    // console.log(req.query)
    let {
        tel,
        email,
        nickname,
        password
    } = req.query;

    // 先判断 邮箱 是否可以注册
    ct.query(`SELECT * FROM huaban WHERE email='${email}'`, (err, data) => {

        // console.log(err);
        // console.log(data);
        // 如果邮箱已经被绑定过，那么这个邮箱不可用
        if (data.length != 0) {
            res.send({
                code: false,
                msg: '该邮箱已被绑定，请更换您要绑定的邮箱'
            });
            // return;
        } else {

            // 如果邮箱没有被绑定过，则可用，进行添加操作
            ct.query(`insert into huaban values(${null},'${tel}','${email}','${nickname}','${password}')`, (err1, data1) => {
                // console.log(err);
                // console.log(data);
                if (data1.warningCount == 0) {
                    res.send({
                        code: true,
                        msg: '添加成功'
                    });
                    return;
                }
                res.send({
                    code: false,
                    msg: '添加失败'
                })
            })
        };

    });

});


// 删除接口


// 重置接口

app.listen(8080, (req, res) => {

    console.log('running at port 8080');
});